home *** CD-ROM | disk | FTP | other *** search
- package symantec.itools.awt;
-
- import java.awt.Button;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Event;
- import java.awt.Label;
- import java.awt.Panel;
- import java.awt.TextComponent;
- import java.util.Vector;
-
- public class KeyPressManagerPanel extends Panel {
- public static final int PLAIN = 0;
- public static final int SHIFT = 1;
- public static final int CTRL = 2;
- Vector tabbed;
- Button defaultButton;
- Button cancelButton;
- Event defaultEvent;
- Event cancelEvent;
- Event[] fKeyEvents = new Event[36];
- Container defaultDeliver;
- Container cancelDeliver;
- Container[] fKeyDeliver = new Container[36];
- boolean bDefaultSetFocus;
- boolean bCancelSetFocus;
- boolean bTabHack;
- boolean bAutoTab = true;
- Event eventLostFocus;
-
- public KeyPressManagerPanel() {
- this.resetKeyManager();
- }
-
- public void setAutoTabState(boolean var1) {
- this.bAutoTab = var1;
- }
-
- public boolean getAutoTabState() {
- return this.bAutoTab;
- }
-
- public synchronized boolean handleEvent(Event var1) {
- switch (var1.id) {
- case 401:
- this.bTabHack = false;
- if (this.keyPressed(var1)) {
- return true;
- }
- break;
- case 402:
- if (this.bTabHack) {
- this.bTabHack = false;
- this.eventLostFocus.key = var1.key;
- this.eventLostFocus.modifiers = var1.modifiers;
- if (this.keyPressed(this.eventLostFocus)) {
- return true;
- }
- }
- break;
- case 403:
- int var2 = var1.key - 1008;
- switch (var1.modifiers) {
- case 0:
- break;
- case 1:
- var2 += 12;
- break;
- case 2:
- var2 += 24;
- break;
- default:
- var2 = -1;
- }
-
- if (var2 > -1 && var2 < 36 && this.fKeyEvents[var2] != null) {
- this.deliverEventTo(this.fKeyEvents[var2], this.fKeyDeliver[var2]);
- return true;
- }
- break;
- case 1005:
- if (var1.target instanceof TextComponent) {
- this.eventLostFocus = var1;
- this.bTabHack = true;
- }
- }
-
- return super.handleEvent(var1);
- }
-
- boolean keyPressed(Event var1) {
- switch (var1.key) {
- case 9:
- if (var1.target instanceof Component) {
- return this.doTab((Component)var1.target, var1.modifiers);
- }
-
- return this.doTab(this, var1.modifiers);
- case 10:
- if (this.defaultButton != null && this.defaultButton.isEnabled()) {
- if (this.bDefaultSetFocus) {
- this.defaultButton.requestFocus();
- }
-
- this.deliverEventTo(this.defaultEvent, this.defaultDeliver);
- return true;
- }
- break;
- case 27:
- if (this.cancelButton != null && this.cancelButton.isEnabled()) {
- if (this.bCancelSetFocus) {
- this.cancelButton.requestFocus();
- }
-
- this.deliverEventTo(this.cancelEvent, this.cancelDeliver);
- return true;
- }
- }
-
- return false;
- }
-
- public void resetKeyManager() {
- this.tabbed = new Vector();
- this.defaultButton = null;
- this.cancelButton = null;
- this.defaultEvent = null;
- this.cancelEvent = null;
- this.defaultDeliver = null;
- this.cancelDeliver = null;
- this.bDefaultSetFocus = false;
- this.bCancelSetFocus = false;
-
- for(int var1 = 0; var1 < 36; ++var1) {
- this.fKeyEvents[var1] = null;
- this.fKeyDeliver[var1] = null;
- }
-
- }
-
- public Component add(Component var1) {
- if (this.bAutoTab && !(var1 instanceof Label)) {
- this.setTabStop(var1);
- }
-
- return super.add(var1);
- }
-
- public void removeDefaultButton() {
- this.defaultButton = null;
- this.defaultEvent = null;
- this.defaultDeliver = null;
- this.bDefaultSetFocus = false;
- }
-
- public void setTabStop(Component var1) {
- if (var1 != this) {
- this.tabbed.addElement(var1);
- }
-
- }
-
- public void setDefaultButton(Button var1) {
- this.setDefaultButton(var1, new Event(var1, 1001, (Object)null), (Container)null, true);
- }
-
- public void setDefaultButton(Button var1, Event var2, Container var3, boolean var4) {
- this.defaultButton = var1;
- this.defaultEvent = var2;
- this.defaultDeliver = var3;
- this.bDefaultSetFocus = var4;
- ((Component)var1).requestFocus();
- }
-
- public void setCancelButton(Button var1) {
- this.setCancelButton(var1, new Event(var1, 1001, (Object)null), (Container)null, true);
- }
-
- public void setCancelButton(Button var1, Event var2, Container var3, boolean var4) {
- this.cancelButton = var1;
- this.cancelEvent = var2;
- this.bCancelSetFocus = var4;
- this.cancelDeliver = var3;
- }
-
- public void removeCancelButton() {
- this.cancelButton = null;
- this.cancelEvent = null;
- this.cancelDeliver = null;
- this.bCancelSetFocus = false;
- }
-
- public void setFKeyEvent(int var1, Event var2, Container var3) {
- this.setFKeyEvent(var1, 0, var2, var3);
- }
-
- public void removeFKeyEvent(int var1) {
- this.removeFKeyEvent(var1, 0);
- }
-
- public void setFKeyEvent(int var1, int var2, Event var3, Container var4) {
- int var5 = var1 - 1008;
- if (var5 >= 0 && var5 <= 11) {
- switch (var2) {
- case 0:
- default:
- break;
- case 1:
- var5 += 12;
- break;
- case 2:
- var5 += 24;
- }
-
- this.fKeyEvents[var5] = var3;
- this.fKeyDeliver[var5] = var4;
- }
- }
-
- public void removeFKeyEvent(int var1, int var2) {
- int var3 = var1 - 1008;
- if (var3 >= 0 && var3 <= 11) {
- switch (var2) {
- case 0:
- default:
- break;
- case 1:
- var3 += 12;
- break;
- case 2:
- var3 += 24;
- }
-
- this.fKeyEvents[var3] = null;
- this.fKeyDeliver[var3] = null;
- }
- }
-
- void deliverEventTo(Event var1, Container var2) {
- if (var2 == null) {
- ((Component)this).postEvent(var1);
- } else {
- ((Component)var2).postEvent(var1);
- }
- }
-
- boolean doTab(Component var1, int var2) {
- int var3 = this.tabbed.size();
- if (var3 > 0 && (var2 == 0 || var2 == 1)) {
- Object var4 = null;
- int var5 = this.tabbed.indexOf(var1);
- int var6 = var5;
- if (var5 == -1) {
- for(Object var7 = var1; var7 != this && var5 == -1; var7 = ((Component)var7).getParent()) {
- var5 = this.tabbed.indexOf(var7);
- }
- }
-
- if (var5 == -1) {
- if (var2 == 0) {
- this.doTab((Component)this.tabbed.lastElement(), var2);
- } else {
- this.doTab((Component)this.tabbed.firstElement(), var2);
- }
-
- return true;
- }
-
- int var14 = var5;
-
- while(true) {
- if (var2 == 0) {
- ++var5;
- if (var5 == var3) {
- var5 = 0;
- }
- } else {
- --var5;
- if (var5 == -1) {
- var5 = var3 - 1;
- }
- }
-
- if (var14 == var5) {
- break;
- }
-
- try {
- Component var12 = (Component)this.tabbed.elementAt(var5);
- if (var12.isEnabled()) {
- var12.requestFocus();
- if (var12 instanceof TextComponent) {
- TextComponent var8 = (TextComponent)var12;
- var8.selectAll();
- }
-
- Component var15 = (Component)this.tabbed.elementAt(var6);
- Event var9 = new Event(var15, 1005, (Object)null);
- var15.postEvent(var9);
- var12 = (Component)this.tabbed.elementAt(var5);
- Event var10 = new Event(var12, 1004, (Object)null);
- var12.postEvent(var10);
- return true;
- }
- } catch (ArrayIndexOutOfBoundsException var11) {
- }
- }
- }
-
- return false;
- }
- }
-